package main

import (
	routers2 "gin-project-01/gin-step02/gin06-router/routers"
	"github.com/gin-gonic/gin"
	"html/template"
	"net/http"
	"time"
)

// UnixToTime
//
//	@Description: 时间戳转换为时间字符串
//	@param timestamp
//	@return string
func UnixToTime(timestamp int64) string {
	return time.Unix(timestamp, 0).Format("2006-01-02 15:04:05")
}

// GetDouble
//
//	@Description: 获得两倍大小的数
//	@param num
//	@return int
func GetDouble(num int) int {
	return num * 2
}

// main
//
//	@Description: 路由分组 ,路由分组嵌套  路由分组文件抽离
func main() {
	engine := gin.Default()
	//设置自定义模板函数
	engine.SetFuncMap(template.FuncMap{
		"UnixToTime": UnixToTime, //注册模板函数
		"GetDouble":  GetDouble,  //注册模板函数
	})
	//加载html模板,
	engine.LoadHTMLGlob("templates/**/*")

	//配置静态web服务  第一参数:路由  第二个参数：映射的目录 就可以直接访问 http://localhost:8888/static/img/8000.jpg
	//可以在其他html模板中引入静态资源，例如 <img src="/static/img/8000.jpg">   <link rel="stylesheet" href="/static/css/base.css">
	engine.Static("static", "./static")

	//1.路由分组
	defaultRouters := engine.Group("/")
	{
		//http://localhost:8888/
		defaultRouters.GET("/", func(c *gin.Context) {
			c.String(http.StatusOK, "%s", "首页！")
		})

		//http://localhost:8888/news
		defaultRouters.GET("/news", func(c *gin.Context) {
			c.String(http.StatusOK, "%s", "新闻页面！")
		})
	}
	//路由分组文件抽离
	routers2.ApiRouters(engine)

	//路由分组文件抽离
	routers2.CarRouters(engine)

	engine.Run(":8888")
}
